www.gusucode.com > Hybrid-Electric Vehicle Model in Simulink工具箱matlab源码 > Hybrid-Electric Vehicle Model in Simulink/HEV_SeriesParallel_R18b/PCT/HEV_Model_PCT_Sim.m
%% SETUP MODEL FOR RSIM HEV_Vehicle_Mass = HEV_Param.Vehicle.Mass; HEV_Model_Driver_Ki = 0.04; mdl = 'HEV_SeriesParallel'; open_system(mdl); %% CONFIGURE FOR TEST Select_HEV_Model_Systems('Sys BC VS',HEV_Configs); HEVSP_tictoc('off'); set_param([mdl '/Vehicle Dynamics/Simple'],'mass','HEV_Vehicle_Mass'); set_param([mdl '/SLRT Scope'],'Commented','on'); set_param(bdroot,'SimscapeLogType','none'); Drive_Cycle_Num = 1; set_param(mdl,'StopTime',num2str(eval(['UrbanCycle' num2str(Drive_Cycle_Num) '.time(end)']))); save_system(mdl); %% BUILD TARGET rtp = Simulink.BlockDiagram.buildRapidAcceleratorTarget(mdl); %% GENERATE PARAMETER SETS Mass_array = [1000:50:1600]; SimSettings = Generate_Sim_Settings(Mass_array,'HEV_Vehicle_Mass',rtp); numSims = length(SimSettings); out = cell(1, numSims); %% START PARALLEL POOL parpool(2); Initialize_MLPool %% SIMULATE tic; for i = 1:numSims out{i} = sim(mdl, SimSettings{i}); end Total_Testing_Time = toc; disp(['Total Testing Time (for) = ' num2str(Total_Testing_Time)]); %% SIMULATE tic; parfor i = 1:numSims out{i} = sim(mdl, SimSettings{i}); end Total_Testing_Time = toc; disp(['Total Testing Time (parfor) = ' num2str(Total_Testing_Time)]); %% PLOT RESULTS figure(1) clf set(gcf,'Position',[11 356 545 293]); for i=numSims:-1:1 data = out{i}.find('Motor'); plot(data.time(:,1),data.signals(3).values(:,1),'LineWidth',2) hold all end title('Motor Torque','FontSize',16,'FontWeight','Bold'); xlabel('Time (s)','FontSize',12,'FontWeight','Bold'); ylabel('Motor Torque','FontSize',12,'FontWeight','Bold'); legend(cellstr(num2str(fliplr(Mass_array(1:1:end))')),'FontSize',10); %% CLOSE PARALLEL POOL delete(gcp); HEV_Param.Control.Mode_Logic_TS = 0.1; %% UNDO CONFIGURATION CHANGES, CLEANUP DIR HEVSP_tictoc('on'); set_param([mdl '/Vehicle Dynamics/Simple'],'mass','HEV_Param.Vehicle.Mass'); set_param([mdl '/SLRT Scope'],'Commented','off'); set_param(bdroot,'SimscapeLogType','all'); Select_HEV_Model_Systems('Sys BD VF',HEV_Configs); save_system(mdl); bdclose(mdl); delete('*.mex*') !rmdir slprj /S/Q % Copyright 2013-2018 The MathWorks(TM), Inc.